home *** CD-ROM | disk | FTP | other *** search
/ 64'er 1985 March / 64er_Magazin_85-03_1985_Markt__Technik_de.d64 / son of destroyer (.txt) < prev   
Commodore BASIC  |  2022-10-26  |  5KB  |  173 lines

  1. 0 rem" ******************************
  2. 1 [143]" **                          **
  3. 2 rem" *      [211]on of [196]estroyer      *
  4. 3 [143]" *      ----------------      *
  5. 4 rem" *     [195]64 - [214]ersion 1.19     *
  6. 5 [143]" *  valntwurf und (NULL)rogramm von  *
  7. 6 rem" *        [193]ndreas [215]urf        *
  8. 7 [143]" *                            *
  9. 8 rem" **                          **
  10. 9 [143]" ******************************
  11. 10 :
  12. 11 :
  13. 15 gosub 10000:rem             title
  14. 20 gosub 20000:rem             helppage
  15. 30 gosub 30000:rem             set vars
  16. 35 gosub 40000:rem             params
  17. 40 gosub 50000:rem             workfield
  18. 45 aw$="slh[133][134][135][136][137][138][140][145][157]":dim fu$(len(aw$))
  19. 47 dw$="":fori=1 to len(aw$):read fu$(i):next
  20. 50 poke vi,peek(vi) or 128
  21. 60 poke 198,0:wait 198,1:get t$
  22. 70 poke vi,peek(vi)and not 128
  23. 80 for i=1 to len(aw$):if t$=mid$(aw$,i,1)then 87
  24. 85 next:goto 50
  25. 87 print dw$"[198]unction: "fu$(i)"[146]            [154]"
  26. 90 on i gosub 4000,5000,200,500,800,1000,1300,1600,1900,2500,3000,3100,3200,3300
  27. 95 goto 50
  28. 200 gosub 20000:gosub 50000:return
  29. 500 poke vi,42:return
  30. 800 poke vi,46:return
  31. 1000 for i=0 to 20:if peek(vi+i*40)<>46 and peek(vi+i*40)<>42 then 1010
  32. 1005 poke vi+i*40,42:next
  33. 1010 for i=1 to 20:if peek(vi-i*40)<>46 and peek(vi-i*40)<>42 then 1020
  34. 1015 poke vi-i*40,42:next
  35. 1020 return
  36. 1300 for i=0 to 20:if peek(vi+i*40)<>46 and peek(vi+i*40)<>42 then 1310
  37. 1305 poke vi+i*40,46:next
  38. 1310 for i=1 to 20:if peek(vi-i*40)<>46 and peek(vi-i*40)<>42 then 1320
  39. 1315 poke vi-i*40,46:next
  40. 1320 return
  41. 1600 open 15,gn,15:open 2,gn,2,"#":v=1868
  42. 1605 for t=0 to 34:for s=0 to 20
  43. 1610 p=peek(v-(s*40)+t):poke v-(s*40)+t,peek(v-(s*40)+t) or 128
  44. 1620 if p<>42 then 1665
  45. 1630 print#15,"u1:"2;0;t+1;s
  46. 1640 print#15,"m-w";chr$(me);chr$(0);chr$(1);chr$(ko)
  47. 1650 print#15,"u2:"2;0;t+1;s
  48. 1660 print#15,"m-w";chr$(me);chr$(0);chr$(1);chr$(kn)
  49. 1665 poke v-(s*40)+t,peek(v-(s*40)+t) and 127
  50. 1666 get t$:if t$<>"*" then 1670
  51. 1668 printdw$;" [198]unction aborted [146][154]          ":close2:close15:return
  52. 1670 next s,t:input#15,f1$,f2$,f3$,f4$:print""f1$" "f2$" "f3$" "f4$
  53. 1680 close 2:close 15:return
  54. 1900 open 15,gn,15:open 2,gn,2,"#":v=1868
  55. 1905 for t=0 to 34:for s=0 to 20
  56. 1910 p=peek(v-(s*40)+t):poke v-(s*40)+t,peek(v-(s*40)+t) or 128
  57. 1920 if p<>42 then 1945
  58. 1925 print#15,"m-w";chr$(me);chr$(0);chr$(1);chr$(ko)
  59. 1930 print#15,"u1:"2;0;t+1;s
  60. 1935 print#15,"m-w";chr$(me);chr$(0);chr$(1);chr$(kn)
  61. 1940 print#15,"u2:"2;0;t+1;s
  62. 1945 poke v-(s*40)+t,peek(v-(s*40)+t) and 127
  63. 1950 get t$:if t$<>"*" then 1970
  64. 1960 printdw$;" [198]unction aborted [146][154]          ":close2:close15:return
  65. 1970 next s,t:input#15,f1$,f2$,f3$,f4$:print""f1$" "f2$" "f3$" "f4$
  66. 1980 close 2:close 15:return
  67. 2100 gosub 40000:goto 50
  68. 2500 print dw$"                 [199]oodbye       ":end
  69. 3000 if peek(vi-40)=42 or peek(vi-40)=46then vi=vi-40:return
  70. 3005 return
  71. 3100 if peek(vi+40)=42 or peek(vi+40)=46then vi=vi+40:return
  72. 3105 return
  73. 3200 if peek(vi-1)=42 or peek(vi-1)=46 then vi=vi-1:return
  74. 3205 return
  75. 3300 if peek(vi+1)=42 or peek(vi+1)=46 then vi=vi+1:return
  76. 3305 return
  77. 4000 rem ** save workpage **
  78. 4010 :
  79. 4020 open 15,gn,15:v=1868
  80. 4030 print#15,"s:sod.temp":open 2,8,2,"sod.temp,u,w":print#2,gn:print#2,ko
  81. 4040 for t=0 to 34:for s=0 to 20
  82. 4050 print#2,chr$(peek(v-(s*40)+t));
  83. 4060 next s,t:close 2
  84. 4070 input#15,f1$,f2$,f3$,f4$:close 15
  85. 4080 print""f1$" "f2$" "f3$" "f4$
  86. 4090 return
  87. 5000 rem ** load workpage **
  88. 5010 :
  89. 5020 open 15,gn,15:v=1868:open 2,gn,2,"sod.temp,u,r":input#2,gn:input#2,ko
  90. 5030 for t=0 to 34:for s=0 to 20
  91. 5040 get#2,a$:a$=a$+chr$(0)
  92. 5050 poke v-(s*40)+t,asc(a$)
  93. 5060 next s,t:close 2
  94. 5070 input#15,f1$,f2$,f3$,f4$:close 15
  95. 5080 print""f1$" "f2$" "f3$" "f4$
  96. 5090 return
  97. 9999 stop
  98. 10000 rem ** ausgabe des kopfblattes **
  99. 10001 rem ** und vorbereiten des     **
  100. 10002 rem ** des bildschirms         **
  101. 10003 :
  102. 10010 poke 646,peek(53280):print"[147]"chr$(9);chr$(14);chr$(8);
  103. 10020 print"    [211] [207] [206]    [207] [198]    [196] [197] [211] [212] [210] [207] [217] [197] [210]   "
  104. 10030 print"[145]    =================================   "
  105. 10040 print"[145]                                        "
  106. 10050 print"[145]    ***                           ***   "
  107. 10060 print"   [197]in [208]rogramm zum [218]erstoeren und"
  108. 10070 print"   [215]iederherstellen von [196]isk-[194]locks."
  109. 10075 print"   [196]er [201]nhalt dieser [194]locks bleibt"
  110. 10077 print"   vollstaendig erhalten."
  111. 10080 print"       *** [196]ruecke [210][197][212][213][210][206][146] ***
  112. 10090 [161] t$:[139] t$[179][177][199](13) [167] 10090
  113. 10095 [142]
  114. 10096 :
  115. 10097 :
  116. 20000 [143] ** ausgabe des helpblattes **
  117. 20003 :
  118. 20020 [153]"load    (NULL) (NULL) (NULL)    (NULL) asc    str$ val (NULL) (NULL) (NULL) (NULL) (NULL) val (NULL)   "
  119. 20030 [153]"on    =================================   "
  120. 20040 [153]"on              left$elp - (NULL)age               "
  121. 20050 [153]"  atnllocate peeklock  =>   asc1 wait
  122. 20060 print"  [198]ree [194]lock      =>   [198]3 [146]
  123. 20070 [153]"  atnllocate (NULL)rack  =>   asc5 wait
  124. 20080 print"  [198]ree [212]rack      =>   [198]7 [146]
  125. 20090 [153]"  str$estroy str$isk    =>   asc2 wait
  126. 20100 print"  [210]ebuild  [196]isk   =>   [198]4 [146]
  127. 20110 [153]"  atnbort ascunction  =>   * wait
  128. 20115 print"  [200]elp-[208]age       =>   h [146]
  129. 20117 [153]"  (NULL)ave (NULL)age       =>   s wait
  130. 20118 print"  [204]oad [208]age       =>   l [146]
  131. 20120 [153]"  (NULL)uit (NULL)rogram    =>   asc8 wait
  132. 20140 print"        ***  [208]ress [210][197][212][213][210][206][146]  ***"
  133. 20150 wait 198,1:get t$:if t$<>chr$(13) then 20150
  134. 20160 return
  135. 20161 :
  136. 20162 :
  137. 30000 rem ** setzen der parameter **
  138. 30001 :
  139. 30010 gn=8:ko=139:vi=1868:me=71:kn=7:return
  140. 30011 :
  141. 30012 :
  142. 40000 rem ** anpassen der parameter **
  143. 40001 :
  144. 40010 print"[147]    [211] [207] [206]    [207] [198]    [196] [197] [211] [212] [210] [207] [217] [197] [210]   "
  145. 40020 print"[145]    =================================   "
  146. 40030 print"[145]             [211]et [208]arameters             "
  147. 40040 open 1,0:print""
  148. 40050 print"  [196]evice #     :"gn"[145]":print"";:input#1,gn:print""
  149. 40070 print"  [195]onstant     :"ko"[145]":print"";:input#1,ko:print""
  150. 40080 close 1:if gn<8 or gn>14 then 40010
  151. 40100 if ko<0 or ko>255 then 40010
  152. 40110 return
  153. 50000 print"[147]";
  154. 50005 print" [201]/[207]: 00 ok 00 00                       [145]":print"[145]";
  155. 50010 tr$="    ..................................."
  156. 50020 for i=0 to 20:print tr$:next
  157. 50030 print"[216][216][216][216][216][216][216][216][216][216][216][216][216][216][216][216][216][216]
  158. 50035 [153]"(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)(NULL)
  159. 50040 print"[216][216][216][216][216][216][216][216][216][216][216]
  160. 50050 [153]"(NULL)(NULL)(NULL)(NULL)(NULL)
  161. 50060 print"";:for i=20 to 0 step-1:print" "i:next
  162. 50070 print"12345678901234567890123456789012345"
  163. 50080 print"    [212]racks[146]   11111111112222222222333333"
  164. 50090 print"":tr$="[211]ectors"
  165. 50095 for i=1 to len(tr$):print""mid$(tr$,i,1):next:return
  166. 63040 :
  167. 63050 rem ** data's fuer funktionen **
  168. 63060 :
  169. 63065 data "[211]ave [208]age","[204]oad [208]age"
  170. 63070 data "[200]elp-[208]age","[193]llocate [194]lock","[198]ree [194]lock","[193]llocate [212]rack"
  171. 63080 data "[198]ree [212]rack","[196]estroy [196]isk","[210]ebuild [196]isk"
  172. 63090 data "[209]uit [208]rogram","up","down","left","right"
  173.